import { _serverUrl } from 'config.js'
// 网络请求封装
export default class network {
  // 展示进度条的网络请求
  // url:网络请求的url
  // params:请求参数
  // loadingText:进度条的提示信息
  // isShowLoading:是否显示加载提示
  // success:成功的回调函数
  // fail：失败的回调 

  static get(url, params, success, fail, headers, isShowLoading = true, loadingText, ) {

    let token = null;
    try {
      var value = wx.getStorageSync('token') //从本地缓存中获取Session信息
      if (value) {
        token = value.token;
      }
    } catch (e) {

    }

    url = _serverUrl + url; //拼接出完整的url 
    // console.log(url)
    if (isShowLoading) {
      wx.showNavigationBarLoading()
      if (loadingText != "") {
        wx.showLoading({
          title: loadingText,
        })
      }
    }

    let defaluteHeader = {
      'content-type': 'application/json',
    }

    if (token) { //如果token存在把他放入头部
      defaluteHeader = {
        'content-type': 'application/json',
        'Authorization': "Bearer " + token,
      }
    }
    wx.request({
      url: url,
      data: params,
      header: {
        ...defaluteHeader,
        ...headers,
      },
      method: 'GET',
      success: function (res) {
        if (res.statusCode == 200) {
          success(res.data)
        }
        else {
          fail && fail()
        }
      },
      fail: function (res) {
        debugger
        fail && fail()
      },
      complete: function (res) {
        if (isShowLoading) {
          wx.hideNavigationBarLoading()
          if (loadingText != "") {
            wx.hideLoading()
          }
        }
      },
    })
  }



  // 展示进度条的网络请求
  // url:网络请求的url
  // params:请求参数
  // loadingText:进度条的提示信息
  // isShowLoading:是否显示加载提示
  // success:成功的回调函数
  // fail：失败的回调
  static post(url, params, success, fail, headers, isShowLoading = true, loadingText) {

    let token = null;
    try {
      var value = wx.getStorageSync('token') //从本地缓存中获取Session信息
      if (value) {
        token = value.token;
      }
    } catch (e) {

    }


    url = _serverUrl + url;//拼接出完整的url 
    if (isShowLoading) {
      wx.showNavigationBarLoading()
      if (loadingText != "") {
        wx.showLoading({
          title: loadingText,
        })
      }
    }

    let defaluteHeader = {
      'content-type': 'application/json',
    }

    if (token) { //如果token存在把他放入头部
      defaluteHeader = {
        'content-type': 'application/json',
        'Authorization': "Bearer " + token,
      }
    }

    // console.log(url)

    wx.request({
      url: url,
      data: params,
      header: {
        ...defaluteHeader,
        ...headers
      },
      method: 'POST',
      success: function (res) {
        if (res.statusCode == 200) {
          success(res.data)
        } else {
          fail && fail()
        }
      },
      fail: function (res) {
        fail && fail()
      },
      complete: function (res) {
        if (isShowLoading) {
          wx.hideNavigationBarLoading()
          if (loadingText != "") {
            wx.hideLoading()
          }
        }
      },
    })
  }
}
